package com.bestcem.xm.common.core.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 授权错误枚举，错误码必须落于100~199之间，包含100和199
 * <p>
 * 处理诸如：用户不存在或已存在、密码错误、登录/注册失败、用户/角色权限不足等授权错误。
 *
 * @author ympan <yuming.pan@idiaoyan.com>
 * @version v3.0
 * @date 2021/8/17 19:37
 */

@Getter
@AllArgsConstructor
public enum AuthErrorCodeEnum implements CommonErrorEnum {

    /**
     * 公司名不存在
     */
    ORG_NOT_EXISTS(101, "公司名不存在"),

    /**
     * Token过期
     */
    EXPIRE_TOKEN(102, "Token过期"),

    /**
     * 密码错误
     */
    PWD_ERROR(103, "密码错误"),

    /**
     * 用户不存在
     */
    USER_NOT_EXISTS(104, "用户不存在"),

    /**
     * 用户名不存在
     */
    USER_NAME_NOT_EXISTS(105, "用户名不存在"),

    /**
     * 秘钥签名非法
     */
    INVALID_SIGN(106, "秘钥签名非法"),

    /**
     * 公司有效期过期
     */
    ORG_EXPIRE(107, "公司有效期过期"),

    /**
     * PrivKeyNotFound
     */
    PrivKeyNotFound(108, "PrivKeyNotFound"),

    /**
     * 公司sso登录禁止
     */
    SSO_FORBIDDEN(109, "公司sso登录禁止"),

    /**
     * 公司sso登录错误
     */
    SSO_ERROR(110, "公司sso登录错误"),

    /**
     * 用户名已存在
     */
    USER_NAME_FOUND(111, "用户名已存在"),

    /**
     * 微信授权失败
     */
    WX_AUTH_ERROR(112, "微信授权失败"),

    /**
     * 平台不存在
     */
    PLATFORM_NOT_FOUND(113, "平台不存在"),

    /**
     * 飞书授权失败
     */
    FS_AUTH_ERROR(114, "飞书授权失败"),

    /**
     * 飞书绑定失败
     */
    FS_BIND_ERROR(115, "飞书绑定失败"),

    /**
     * 非倍市得管理员
     */
    NOT_CEM_ADMIN_ERROR(116, "非倍市得管理员"),

    /**
     * 飞书未绑定
     */
    FS_NOT_BIND_ERROR(117, "飞书未绑定"),

    /**
     * 开放平台未登录
     */
    OPEN_PLATFORM_NOT_LOGIN(118, "开放平台未登录"),

    /**
     * 用户已被停用
     */
    USER_STATUS_STOP(119, "用户已被停用"),

    /**
     * 企业微信绑定失败
     */
    WX_WORK_BIND_ERROR(120, "企业微信绑定失败"),

    /**
     * 钉钉企业已绑定过
     */
    DING_TALK_ORG_EXIST(121, "钉钉企业已绑定过"),

    /**
     * 钉钉用户session不存在
     */
    DING_TALK_SESSION_NOT_FOUND(122, "钉钉用户session不存在"),

    /**
     * 钉钉免登授权码失效
     */
    DING_TALK_AUTH_CODE_ERROR(123, "钉钉免登授权码失效"),

    /**
     * 钉钉用户不存在
     */
    DING_TALK_USER_NOT_FOUND(124, "钉钉用户不存在"),

    /**
     * 非钉钉企业管理员
     */
    NOT_DING_TALK_ADMIN_ERROR(125, "非钉钉企业管理员"),

    /**
     * 试用套餐到期禁止登陆
     */
    BAN_LOGIN_TRIAL_EXPIRYDT(126, "试用套餐到期禁止登陆"),

    /**
     * 用户需要通过mfa认证
     */
    USER_NEED_MFA_ERROR(127, "用户需要通过mfa认证");

    private int code;
    private String msg;

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }
}
